Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 26 ноября 2018 года; проверки требуют 16 правок.
Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 26 ноября 2018 года; проверки требуют 16 правок.
Результат бикубической интерполяции функции заданной в ячейке 4х4 . Данную ячейку можно рассматривать как квадрат, состоящий из 9 единичных квадратов. Черными точками обозначены известные значения функции до интерполяции. Условным цветом обозначены интерполированные значения в каждой точке полученной функции.Сравнение разных методов одномерной и двумерной интерполяций
Бикубическая интерполяция часто используется в обработке изображений, давая более качественную картинку по сравнению с билинейной интерполяцией. Также бикубическая интерполяция применяется в алгоритмах управления станков с ЧПУ для учёта неровностей плоскостей, например, при фрезеровке печатных плат.
В случае бикубической интерполяции значение функции в искомой точке вычисляется через её значения в 16 соседних точках, расположенных в вершинах квадратов плоскости .
При использовании приведённых ниже формул для программной реализации бикубической интерполяции следует помнить, что значения и являются относительными, а не абсолютными. Например, для точки с координатами . Для получения относительных значений координат необходимо округлить вещественные координаты вниз и вычесть полученные числа из вещественных координат.
,
где
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
Подобным образом можно использовать и интерполяции более высокого порядка, вычисляя значения функции по соседним точкам.
Допустим, что необходимо интерполировать значение функции в точке , лежащей внутри квадрата , и известно значение функции в шестнадцати соседних точках .
Тогда общий вид функции, задающей интерполированную поверхность, может быть записан следующим образом:
.
Для нахождения коэффициентов необходимо подставить в вышеприведённое уравнение значения функции в известных шестнадцати точках. Например:
Единожды найденные коэффициенты теперь могут быть использованы для многократного вычисления интерполированного значения функции в произвольных точках квадрата .
Следует отметить, что такой способ обеспечивает непрерывность самой функции и её второй производной на границах смежных квадратов, но приводит к разрыву первых производных на границах ячеек 4×4. Для обеспечения непрерывности самой функции и её первой производной необходимо подставлять в исходное выражение значения функции и значения первых производных по направлениям x и y в вершинах центральной ячейки, производные рассчитываются через центральные разности. Для подстановки производных выражение должно быть продифференцировано соответствующим образом.
Другая интерпретация метода заключается в том, что для нахождения интерполированного значения можно сначала произвести кубическую интерполяцию в одном направлении, а затем в другом.
Для функции с известными значениями , , , можно построить кубический сплайн: , или в матричном виде:
,
где
,
.
Таким образом, для нахождения интерполированного значения в квадрате можно сначала рассчитать четыре значения , , , для зафиксированного , затем через полученные четыре точки построить кубический сплайн, и этим завершить вычисление :
.
Следует отметить, что такой подход обеспечивает непрерывность самой функции и её вторых производных на границе ячеек, но не обеспечивает непрерывности первой производной. Для обеспечения непрерывности первой производной необходимо подставлять значения функции и её первых производных на границе центральной ячейки. Тогда коэффициенты сплайна будут иметь вид: